<template>
  <!-- 基本的数据遍历 -->
  <!-- <p v-for="item in list" :key="item.id">{{ item.carNumber }}</p> -->

  <div class="card-container">
    <!-- 搜索区域 -->
    <div class="search-container">
      <span class="search-label">车牌号码：</span>
      <el-input v-model="params.carNumber" clearable placeholder="请输入内容" class="search-main" @clear="getList"/>

      <span class="search-label">车主姓名：</span>
      <el-input v-model="params.personName" clearable placeholder="请输入内容" class="search-main" @clear="getList"/>

      <span class="search-label">状态：</span>
      <el-select v-model="params.cardStatus">
        <!-- <el-option v-for="item in []" :key="item.id" /> -->

        <!-- 全部数据需要提供null 表示没有这个条件 -->
        <el-option label="全部" :value="null" />
        <el-option label="可用" :value="0" />
        <el-option label="已过期" :value="1" />
        
      </el-select >

      <el-button type="primary" class="search-btn" @click="getList">查询</el-button>
    </div>
    <!-- 新增删除操作区域 -->
    <div class="create-container">
      <el-button type="primary" @click="addCard">添加月卡</el-button>
      <el-button @click="delMore">批量删除</el-button>
    </div>
    
    <!-- 表格区域 -->
    <div class="table">
      <el-table  style="width: 100%" :data="list" @selection-change="fn">

        <!-- 实现选择的一列 -->
        <el-table-column  type="selection" width="100" />

        <!-- type="index" 渲染序号
           prop="xxx" 拿到每一项的xxx字段进行展示
       -->
        <el-table-column type="index" label="序号" />

        <el-table-column label="车主名称" prop="personName"/>
        <el-table-column label="联系方式" prop="phoneNumber"/>
        <el-table-column label="车牌号码" prop="carNumber"/>
        <el-table-column label="车辆品牌" prop="carBrand"/>
        <el-table-column label="剩余有效天数" prop="totalEffectiveDate"/>
        <el-table-column label="操作" fixed="right" width="180">
          <template #default="scope">
            <el-button size="mini" type="text">续费</el-button>
            <el-button size="mini" type="text" @click="lookClick(row)">查看</el-button>
            <el-button size="mini" type="text" @click="jump(scope.row.id)">编辑</el-button>

            <!-- 当前数据id scope是个对象 scope.row表示当前这一行 scop.row.id表示这一行数据的id -->
            <el-button size="mini" type="text" @click="del(scope.row.id)">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
    </div>


    <!--分页结构  total:发请求时存下的总数 -->
    <div class="page-container"> 
      <el-pagination
        layout="total, sizes, prev, pager, next"
        :total="total" 
        :current-page="params.page"
        :page-sizes="[2, 4, 6, 8, 10]"
        :page-size="params.pageSize"
        @size-change="handleSizeChange" 
        @current-change="handleCurrentChange"

      />
    </div>
    <!-- 添加楼宇 -->
    <el-dialog
      title="添加楼宇"
      width="580px"
    >
      <!-- 表单接口 -->
      <div class="form-container">
        <!-- <el-form ref="addForm" :model="addForm" :rules="addFormRules">
          <el-form-item label="楼宇名称" prop="name">
            <el-input v-model="addForm.name" />
          </el-form-item>
          <el-form-item label="楼宇层数" prop="floors">
            <el-input v-model="addForm.floors" />
          </el-form-item>
          <el-form-item label="在管面积" prop="area">
            <el-input v-model="addForm.area" />
          </el-form-item>
          <el-form-item label="物业费" prop="propertyFeePrice">
            <el-input v-model="addForm.propertyFeePrice" />
          </el-form-item>
        </el-form> -->
      </div>
      <template #footer>
        <el-button size="mini">取 消</el-button>
        <el-button size="mini" type="primary">确 定</el-button>
      </template>
    </el-dialog>
  </div>
</template>


<script>
import { getMonthCardListAPI, delCarCardAPI } from '@/api/car'
// import { configureWebpack } from 'vue.config'
export default {
  data(){// 提供数据 通过后端接口
    return{
      list: [],
      total:0,
      params:{
        page: 1,
        pageSize: 8,
        carNumber: null,
        personName: null,
        cardStatus: null
        

      }
    }
  },

  mounted() {
    //生命周期函数，特订时机执行=>页面加载好之后
    // console.log('页面已加载，可以发送请求了')
    // list: [
    //   { id: 1, name: '张三', age: 19},
    //   { id: 2, name: '李四', age: 19},
    //   { id: 3, name: '王五', age: 19},
    // ]
    // getMonthCardListAPI(this.params).then((res) => {  
    //   //箭头函数没有this的指向性问题
    //   //回调数据  请求结束之后才会执行   响应回来的信息就是res参数
    //   console.log(res.data.rows, 999)
    //   this.list = res.data.rows
    //   this.total = res.data.total
    // })

    this.getList()
      //原地发送请求 => 封装一个接口函数 在这里调用
    
  },

methods: {
  //选中项时触发selection-change事件 监听这个事件
  //val 就是选中项=> 选中这一行的对象数据组成数组
  fn(val){
    console.log(val)
    //let定义的变量 const定义不会变化的常量
    let str=''
    //遍历数组 
    for(let index  = 0; index<val.length; index++){
      const temp=val[index]
      str=str + temp.id+','// 拼接数据id
    }
    //console.log(str)
    //去掉最后一个数据的','
    const idStr = str.slice(0, str.length - 1)
    this.idStr = idStr

  },
  delMore(){
    this.$confirm('你确定要删除这些月卡吗？').then(() => {
      delCarCardAPI(this.idStr).then(() => {
        this.$message.success('删除成功')
        //重新获取数据
        this.getList()
      })
    })
  },

  jump(id){
    //跳转到之前的添加页面 + 还需要携带id数据
    this.$router.push('/addCard?id=' + id)
    

  },

  del(id){
    // console.log('要没了', id)
    //防误触  elementui提供一个组件  确认组件=>this.$confirm
    this.$confirm('确认删除吗？？？').then(() => {
      //点击确认后执行
      console.log(1)
      delCarCardAPI(id).then(() => {
      this.getList()

      this.$message.success('删除成功')
    }).catch(() => {
      this.$message.error('删除失败')
    })


    }).catch(() => {
      //点击取消后执行
      console.log(2)
    })
  },


  getList(){
    getMonthCardListAPI(this.params).then((res) => {
      this.list = res.data.rows
      this.total = res.data.total
    })
  },


  //死删代码 handleCurrentChange handleCurrentChange  
  //用getList(){} 进行封装 就不用多次重复写
  handleSizeChange(pageSize){
    // console.log('每页条数变化了', pageSize)
    this.params.pageSize = pageSize//更新每页条数
    this.params.page = 1 //以前必须这么做 => 以前不会主动重置（已经修复）

    this.getList()
    
  },
  handleCurrentChange(page){
    // console.log('页码变化了', page)
    //更新页码
    this.params.page = page //重新获取最新页码的数据

    this.getList()
  },

  addCard(){
    // 路由 跳转页面
    this.$router.push('/addCard')
  }
}



}
</script>


<style lang="scss" scoped>
.card-container {//内边距
  padding: 20px;
  background-color: #fff;
}


.search-container {
  display: flex;
  align-items: center;
  border-bottom: 1px solid rgb(237, 237, 237, .9);
  padding-bottom: 20px;
  .search-main {
    width: 220px;
    margin-right: 10px;
  }
  .search-btn{
    margin-left:20px;
  }
}
.create-container{
  margin: 10px 0px;
}
.page-container{
  padding:4px 0px;
  text-align: right;
}
.form-container{
  padding:0px 80px;
}
</style>